package com.intellagric.controller.product;

import com.intellagric.common.bean.LayuiDataGridResult;
import com.intellagric.common.bean.ResponseMessage;
import com.intellagric.common.utils.UUIDUtils;

import com.intellagric.interfaces.product.ProductUsedService;
import com.intellagric.pojo.ProductUsed;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.text.ParseException;

@Controller
@RequestMapping("/admin")
public class ProductUsedController {

    @Autowired
    private ProductUsedService productUsedService;

    @RequestMapping("/productUsed/add")
    @ResponseBody
    public ResponseMessage addProductUsed(ProductUsed ProductUsed){
        ProductUsed.setId(UUIDUtils.getID());
        return productUsedService.insertProductUsed(ProductUsed);
    }

    @RequestMapping("/productUsed/edit")
    @ResponseBody
    public ResponseMessage editProductUsed(ProductUsed ProductUsed){
        return productUsedService.editProductUsed(ProductUsed);
    }

    @RequestMapping("/productUsed/delete")
    @ResponseBody
    public ResponseMessage deleteProductUsed(String id){
        return productUsedService.deleteProductUsed(id);
    }

    @RequestMapping("/productUsed/batchdelete")
    @ResponseBody
    public LayuiDataGridResult batchDelete(@RequestParam("ids[]") String[] ids){
        return productUsedService.batchDeleteProductUsed(ids);
    }


    @RequestMapping("/productUsed/getUsedList")
    @ResponseBody
    public LayuiDataGridResult getUsedList(int page,int limit){
        return  productUsedService.getList(page,limit);
    }
    @RequestMapping("/productUsed/getUsedListByCatId")
    @ResponseBody
    public LayuiDataGridResult getUsedListByCategory(int page,int limit,String categoryId){
        return  productUsedService.getListByCategoryId(page,limit,categoryId);
    }
    @RequestMapping("/productUsed/getProductUsed")
    @ResponseBody
    public ProductUsed getProductUsed(String ProductUsedId){
        return (ProductUsed) productUsedService.selectProductUsedById(ProductUsedId).getData().get("usedBean");
    }

    @RequestMapping("/productUsed/search")
    @ResponseBody
    public LayuiDataGridResult search(int page, int limit, String keyword){
        return productUsedService.getProductUsedByKeyword(page,limit,keyword);
    }

    /**
     * 预定查询
     * @param page
     * @param limit
     * @param keyword
     * @return
     */
    @RequestMapping("/productUsed/bookedSearch")
    @ResponseBody
    public LayuiDataGridResult bookedSearch(int page, int limit, String keyword){
        return productUsedService.getProductBookedByKeyword(page,limit,keyword);
    }
    /**
     * 查找产品剩余量
     * @param productId
     * @return
     */
    @RequestMapping("/productUsed/totalUsed")
    @ResponseBody
    public int totalUsed(String productId){
        return productUsedService.getUsedCountByProId(productId);
    }
    /**
     * 查找预约物品列表
     * @param page
     * @param limit
     * @return
     */
    @RequestMapping("/productUsed/bookedList")
    @ResponseBody
    public LayuiDataGridResult bookedList(int page,int limit){
        return productUsedService.getBookedList(page,limit);
    }

    /**
     * 根据分类查找预约物品列表
     * @param page
     * @param limit
     * @param categoryId
     * @return
     */
    @RequestMapping("/productUsed/getBookedListByCatId")
    @ResponseBody
    public LayuiDataGridResult getBookedListByCategory(int page,int limit,String categoryId){
        return  productUsedService.getBookedListByCategoryId(page,limit,categoryId);
    }

    /**
     * 插入预定申请
     * @param ProductUsed
     * @return
     */
    @RequestMapping("/productUsed/bookAdd")
    @ResponseBody
    public ResponseMessage addProductBook(ProductUsed ProductUsed){
        ProductUsed.setId(UUIDUtils.getID());
        return productUsedService.insertProductBooked(ProductUsed);
    }
    /**
     * 归还设备
     * @param ProductUsedId
     * @return
     */
    @RequestMapping("/productUsed/bookReturn")
    @ResponseBody
    public LayuiDataGridResult addProductBook(String ProductUsedId){
        return productUsedService.bookReturn(ProductUsedId);
    }
    /**
     * 批量归还设备
     * @param ProductUsedIds
     * @return
     */
    @RequestMapping("/productUsed/batchBookReturn")
    @ResponseBody
    public LayuiDataGridResult addProductBook(@RequestParam("ids[]") String[] ProductUsedIds){
        return productUsedService.batchBookReturn(ProductUsedIds);
    }

    /**
     * 获取日期
     * @return
     */
    @RequestMapping("/productUsed/getRecentDate")
    @ResponseBody
    public String[] getRecentDate(){
        String[] strs=productUsedService.getRecentDate();
        return strs;
    }
    /**
     * 获取数据
     * @return
     */
    @RequestMapping("/productUsed/getRecentData")
    @ResponseBody
    public long[] getRecentData(){
        try {
            return productUsedService.getRecentData();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}
